package com.ccsc.auth.service;

import com.ccsc.auth.entity.Resource;
import com.ccsc.auth.entity.Role;
import com.ccsc.auth.utils.DataMap;
import com.ccsc.auth.utils.Page;

import java.util.List;

/**
 * 角色service
 * Created by yyangs on 2017/2/10.
 */
public interface RoleService {

    List<Role> getAllRoles() throws Exception;       						                                            //获取全部角色列表
    List<Role> getRolesByStatus(Integer Status) throws Exception;   			                                        //根据角色状态查角色列表
    List<Role> getRolesByName(String name) throws Exception;   			                                        //根据角色状态查角色列表
   // List<Role> getRolesByDepartmentAndPosition(Integer departmentId,Integer positionId) throws Exception;               //根据部门职位id查询所拥有的角色
    List<Role> getRolesByResourceId(Integer resourceId) throws Exception;                                               //查询拥有某一资源的所有角色
    List<Role> getRolesByUserId(Integer userId) throws Exception;                                                       //查询某一用户的所有角色

    Page getRolesByPage(DataMap params) throws Exception;					                                            //分页查询角色列表
    Page getRolesByPage(Role rolet, DataMap params) throws Exception;					                        //分页并根据条件查询角色列表

    Role getRoleById(Integer id) throws Exception;   						                                            //根据角色ID查角色信息

    Integer createRole(Role role) throws Exception;  					        	                                    //添加角色
    Integer updateRole(Role role) throws Exception;   		   		            	                                    //修改角色
    Integer deleteRoleById(Integer id) throws Exception; 					                                            //删除角色

    Integer activeRole(Integer id) throws Exception;							                                        //激活角色
    Integer withdrawRole(Integer id) throws Exception;						                                            //注销角色
    Integer batchActiveRole(List<Integer> ids) throws Exception;				                                        //批量激活角色
    Integer batchWithdrawRole(List<Integer> ids) throws Exception;			                    	                    //批量注销角色

    Integer getUserNumByRoleId(Integer roleId) throws  Exception;                                                       //获得该角色的用户数量
}
